جزوه · فصل سوم · جلسه ۳۷ · RAID به زبان ساده ← بازگشت به فهرست
📘 فصل سوم · جلسه ۳۷ RAID به زبان ساده
📅 تاریخ: دوشنبه، ۲۶ مرداد ۱۴۰۵ 👤 مدرس: محمد عابدینی 🐚 Zsh · 🐧 Debian (کالی) · 📦 Red Hat
🍳 قبل از هر چیزی، یه مثال ساده:

فرض کن یه رستوران داری با چند تا آشپز (همون دیسک‌های سخت). هر کدوم از روش‌های RAID، یه جور چیدمان آشپزا و پخت غذاست. بذار ببینیم هرکدوم چطور کار میکنن!

▍ RAID 0 = Striping (نواربندی) — همه با هم!

📀 مثل یه تیم آشپزی که همه با هم یه غذا درست میکنن!

  • هر آشپز یه تیکه از غذا رو می‌پزه.
  • مزیت: غذا خیلی زودتر حاضر میشه (سرعت بالا).
  • عیب: اگه یه آشپز مریض بشه، کل غذا می‌پره! (هیچ تحمل خطایی نداره).
  • حداقل دیسک: ۲ عدد
  • کاربرد: جاهایی که سرعت مهمه، مثل ذخیره موقت فیلم‌های در حال ادیت.
💡 یادت باشه: RAID 0 = سرعت بالا، ولی هیچ امنیتی نداره!

▍ RAID 1 = Mirroring (آینه‌سازی) — دو تا آشپز، یه غذا!

📀 مثل این که دو تا آشپز دقیقاً یه غذا رو درست کنن!

  • هر دو آشپز دقیقاً همون غذا رو می‌پزن (داده‌ها روی دو دیسک کپی میشن).
  • مزیت: اگه یه آشپز مریض بشه، آشپز دوم هنوز غذا رو داره (تحمل خطا داره).
  • عیب: فضای رستوران دوبرابر میشه (نصف فضا هدر میره).
  • حداقل دیسک: ۲ عدد
  • کاربرد: سرورهایی که اطلاعاتشون خیلی مهمه، مثل بانک‌ها.
💡 یادت باشه: RAID 1 = امنیت بالا، ولی فضا نصف میشه!

▍ RAID 5 = Striping + Parity — یه آشپز کمکی!

📀 مثل این که همه آشپزا غذا درست میکنن، ولی یه نسخه پشتیبان کوچک از همه غذاها دارن!

  • داده‌ها بین دیسک‌ها تقسیم میشن و یه اطلاعات اضافی (Parity) هم برای بازیابی ذخیره میشه.
  • مزیت: اگه یه آشپز مریض بشه، بقیه آشپزا با کمک اون نسخه پشتیبان، غذای گمشده رو دوباره درست میکنن.
  • عیب: فضای یه دیسک برای پشتیبان هدر میره.
  • حداقل دیسک: ۳ عدد
  • تحمل خرابی: ۱ دیسک
  • کاربرد: بیشتر سرورها که هم سرعت میخوان هم امنیت.
💡 یادت باشه: RAID 5 = تعادل بین سرعت و امنیت!

▍ RAID 6 = Striping + Double Parity — دو تا آشپز کمکی!

📀 مثل RAID 5، ولی با دو تا نسخه پشتیبان!

  • مثل RAID 5، ولی با دو تا Parity (پشتیبان).
  • مزیت: اگه دو تا آشپز مریض بشن، باز هم غذا درست میشه.
  • عیب: فضای بیشتری برای پشتیبان مصرف میشه.
  • حداقل دیسک: ۴ عدد
  • تحمل خرابی: ۲ دیسک
  • کاربرد: سیستم‌های حیاتی که حتی خرابی دو دیسک رو هم تحمل میکنن.
💡 یادت باشه: RAID 6 = امنیت بیشتر، ولی فضای بیشتری هدر میره!

▍ RAID 10 = RAID 1 + RAID 0 — بهترین!

📀 هم سرعت داره، هم امنیت!

  • اول یه گروه از آشپزا رو آینه میکنی (RAID 1).
  • بعد چند تا از این گروه‌ها رو نوار میکنی (RAID 0).
  • مزیت: هم غذا زود حاضر میشه، هم اگه یه آشپز مریض بشه، مشکل نداره.
  • عیب: به حداقل ۴ دیسک نیاز داری و نصف فضا هدر میره.
  • حداقل دیسک: ۴ عدد
  • تحمل خرابی: تا ۲ دیسک (به شرطی که از یه گروه نباشن)
  • کاربرد: سرورهای گرون‌قیمت که همه چی براشون مهمه (مثل دیتابیس‌های بزرگ).
💡 یادت باشه: RAID 10 = بهترین گزینه، ولی گرون‌ترین!

▍ جدول خلاصه برای یادآوری سریع

نوع RAID اسم دیگه حداقل دیسک تحمل خرابی سرعت فضای مفید
RAID 0 Striping ۲ ❌ هیچی 🚀 خیلی بالا ۱۰۰٪
RAID 1 Mirroring ۲ ✅ ۱ دیسک متوسط ۵۰٪
RAID 5 Parity ۳ ✅ ۱ دیسک بالا ۶۶٪ تا ۹۰٪
RAID 6 Double Parity ۴ ✅ ۲ دیسک متوسط ۵۰٪ تا ۸۰٪
RAID 10 Mirror+Stripe ۴ ✅ ۲ دیسک 🚀 خیلی بالا ۵۰٪
🧪 یه مثال عددی واسه تفهیم:

فرض کن ۳ تا دیسک ۱۰۰ گیگی داری:

  • تو RAID 0: میشه ۳۰۰ گیگ با سرعت بالا، ولی اگه یه دیسک خراب بشه، همه چی می‌ره.
  • تو RAID 5: میشه ۲۰۰ گیگ (چون ۱۰۰ گیگ برای پشتیبان)، ولی اگه یه دیسک خراب بشه، داده‌هات میمونه.

▍ نصب ابزار mdadm

📦 دبیان (Debian/Kali):
┌──(ya3in㉿kali)-[~] └─$ sudo apt update └─$ sudo apt install mdadm -y
📦 رد هت (Red Hat/AlmaLinux):
┌──(user㉿almalinux)-[~] └─$ sudo dnf clean all └─$ sudo dnf install mdadm -y

▍ ساخت RAID 0 با دو دیسک

فرض کن دو تا پارتیشن داری: /dev/sdb1 و /dev/sdc1

┌──(ya3in㉿kali)-[~] └─$ sudo mdadm --create /dev/md0 --level=stripe --raid-devices=2 /dev/sd[b-c]1

توضیح: این دستور یه آرایه RAID 0 با اسم /dev/md0 از دو دیسک /dev/sdb1 و /dev/sdc1 می‌سازه.

💡 روش کوتاه‌تر:
┌──(ya3in㉿kali)-[~] └─$ sudo mdadm -C /dev/md0 -l raid0 -n 2 /dev/sd[b-c]1
  • -C = Create (ایجاد)
  • -l raid0 = Level = RAID 0
  • -n 2 = Number of devices = 2

▍ دیدن وضعیت RAID

┌──(ya3in㉿kali)-[~] └─$ cat /proc/mdstat Personalities : [raid0] md0 : active raid0 sdc1[1] sdb1[0] 20970496 blocks super 1.2 512k chunks unused devices:

توضیح: این خروجی نشون میده که RAID 0 با اسم md0 فعال هست و از دو دیسک sdb1 و sdc1 ساخته شده.

▍ فرمت و Mount کردن

┌──(ya3in㉿kali)-[~] └─$ sudo mkfs.ext4 /dev/md0 └─$ sudo mkdir /mnt/raid0 └─$ sudo mount /dev/md0 /mnt/raid0

▍ پاک کردن RAID

⚠️ توجه!

این کار همه داده‌های روی RAID رو پاک میکنه. اگه اطلاعات مهم داری، اول پشتیبان بگیر.

┌──(ya3in㉿kali)-[~] └─$ sudo umount /mnt/raid0 └─$ sudo mdadm --stop /dev/md0 └─$ sudo mdadm --zero-superblock /dev/sdb1 └─$ sudo mdadm --zero-superblock /dev/sdc1
✅ تمرین برای تثبیت:
  • با استفاده از Loop Deviceها، دو دیسک مجازی ۵۰ مگابایتی بساز.
  • روی آنها پارتیشن ایجاد کن.
  • با mdadm یک RAID 0 بساز.
  • فرمتش کن، Mount کن و یه فایل تست توش ذخیره کن.
  • بعد RAID رو پاک کن.